﻿namespace CamlQueryCreator
{
    /// <summary>
    /// Типы операций сравнения.
    /// </summary>
    internal enum OperationKind
    {
        /// <summary>
        /// Равно.
        /// </summary>
        Eq,

        /// <summary>
        /// Не равно.
        /// </summary>
        Neq,

        /// <summary>
        /// Больше.
        /// </summary>
        Gt,

        /// <summary>
        /// Меньше.
        /// </summary>
        Lt,

        /// <summary>
        /// Меньше либо равно.
        /// </summary>
        Leq,

        /// <summary>
        /// Больше либо равно.
        /// </summary>
        Geq,

        /// <summary>
        /// Равно Null.
        /// </summary>
        IsNull,

        /// <summary>
        /// Не равно Null.
        /// </summary>
        IsNotNull,

        /// <summary>
        /// Начинается с.
        /// </summary>
        BeginsWith,

        /// <summary>
        /// Содержит.
        /// </summary>
        Contains,

        /// <summary>
        /// Включает в себя (среди элементов, на которое ссылается данное поле, содержится выбранный элемент).
        /// <para>Только для полей типа <see cref="FieldTypeKind.Lookup"/> с множественным выбором значений (MultiSelect).</para>
        /// </summary>
        Includes,

        /// <summary>
        /// Не включает в себя (среди элементов, на которое ссылается данное поле, нет выбранного элемента).
        /// <para>Только для полей типа <see cref="FieldTypeKind.Lookup"/> с множественным выбором значений (MultiSelect).</para>
        /// </summary>
        NotIncludes,
    }

    /// <summary>
    /// Класс расширений <see cref="OperationKind"/>.
    /// </summary>
    internal static class OperationKindExtensions
    {
        /// <summary>
        /// Получение названия <see cref="OperationKind"/>.
        /// </summary>
        internal static string ToName(this OperationKind operationKind)
        {
            return operationKind.ToString();
        }
    }
}
